Parallel processing system by OS for single processor

ABSTRACT

The present invention relates to a parallel processing system by an OS for single processor capable of operating an OS for single processor and an existing application on a multiprocessor and achieving parallel processing by a multiprocessor with respect to the application, wherein the multiprocessor are logically divided into two groups, i.e., a first processor side and a second processor side, and units of work that are parallelizable within the application operating on the processors on the first processor side are controlled as new units of work on the processors on the second processor side.

CROSS-REFERENCE TO RELATED PATENT APPLICATIONS

This application is a continuation of application Ser. No. 10/390,595,filed Mar. 19, 2003, now pending, and based on Japanese PatentApplication No. 2002-079225, filed Mar. 20, 2002, by Masato Edahiro,Yoshiyuki Ito, Junji Sakai, Tetsuya Minakami, and Hiroaki Inoue, thedisclosures of which are incorporated herein by reference in theirentirety. This application claims only subject matter disclosed in theparent application and therefore presents no new matter.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a parallel processing system by amultiprocessor, in particular, it relates to a parallel processingsystem by an OS for single processor capable of operating the OS and anexisting application for single processor on a multiprocessor andachieving parallel processing by the multiprocessor with respect to theapplication.

2. Description of the Related Art

In data processing devices such as mobile terminals including mobilephones and mobile PCs, in the current situation, an operating system forsingle processor (hereinafter referred to as OS for single processor)and an application for single processor (hereinafter simply referred toas application) are basically executed on a single processor.

In such a situation, if the application is to be used as-is on amultiprocessor basis, it is necessary to execute the application on anOS for multiprocessor instead of the OS for single processor.

As systems that control the execution of OSes and applications formultiprocessor on multiprocessor systems such as the one describedabove, prior arts are disclosed, for example, in the Japanese PatentLaid-open No. Heisei 3-257652 and Heisei 3-113563.

The Japanese Patent Laid-open No. Heisei 3-257652 discloses a method forcontrolling the interruption between each processor element in amultiprocessor system consisting of a plurality of processor elements.

The Japanese Patent Laid-open No. Heisei 3-113563 discloses a method forscheduling processes assigned to a plurality of processors in amultiprocessor system.

However, when an existing application is operated on the OS formultiprocessor as in the prior art, there is the problem that the OS formultiprocessor provides services for multiprocessor regardless of thefact that the application uses only one among a plurality of processors,or it proceeds with processing the exclusion of the other processorsregardless of the fact that other applications are not operating, suchthat these extra processing lead to overheads.

Moreover, if the application were modified for use with amultiprocessor, the above problem would be solved, however, it wouldlead to a different problem that considerable labor and cost would benecessary for the modification.

Furthermore, when the application is used as-is on the existing OS forsingle processor, there is a high demand that the existing applicationbe operated as-is on a multiprocessor.

SUMMARY OF THE INVENTION

One object of the present invention is to provide a parallel processingsystem capable of operating an OS and an existing application for singleprocessor on a multiprocessor without adding any modification to them,and achieving parallel processing by the multiprocessor with respect tothe application.

Another object of the present invention is to provide a parallelprocessing system capable of operating an OS and an existing applicationfor single processor on a multiprocessor without adding any modificationto them, and at the same time, controlling units of work (UOWs) of theapplication between each processor synchronously and asynchronously.

According to the first aspect of the invention, a parallel processingsystem by an OS for single processor capable of operating an OS forsingle processor and an application on a multiprocessor and achievingparallel processing by the multiprocessor with respect to theapplication, with the requirements of

logically dividing the multiprocessor into two groups, i.e., a firstprocessor side and a second processor side, and

controlling units of work that are parallelizable within the applicationoperating on a processor on the first processor side as new units ofwork on processors on the second processor side.

In the preferred construction, the units of work that are parallelizablewithin the application are precreated on the processors on the secondprocessor side.

In another preferred construction, the units of work that areparallelizable within the application are created and activated as newunits of work on the processors on the second processor side.

In another preferred construction, the OS for single processor providedwith a virtual storage mechanism is mounted on the processor on thefirst processor side and each processor on the second processor side.

In another preferred construction, the new units of work on theprocessors on the second processor side are controlled synchronously orasynchronously with the units of work on the processor on the firstprocessor side.

In another preferred construction, a parallel processing unit forperforming controls related to the units of work including the creationof the units of work, and an OS service unit for providing a service forthe OS for single processor to the units of work are incorporated oneach of the first processor side and the second processor side.

In another preferred construction, a control processing relay unit forexchanging control signals and data between the first processor side andthe second processor side is provided.

In another preferred construction, the control processing relay unitbeing provided with interruption control devices corresponding to eachprocessor, and communication regions corresponding to each processor,

the interruption control devices being configured by an interruptioninstruction unit for instructing the other processors to interrupt, aninterruption state holding unit for holding the information that therewas an interruption due to an interruption instruction, and aninterruption cancellation unit for clearing the interruption, and

the communication regions being configured by a communication reasonholding region for holding the information on the reason forcommunication from a communicating processor, a communication dataholding region for holding communication data for communication, and anexclusion control region for locking the communication region forsecuring the communication.

In another preferred construction, the control processing relay unitbeing provided with interruption control devices corresponding to eachprocessor, and communication regions corresponding to each processor,

the interruption control devices being configured by an interruptioninstruction unit for instructing the other processors to interrupt, aninterruption state holding unit for holding the information that therewas an interruption due to an interruption instruction, and aninterruption cancellation unit for clearing the interruption, and

wherein the communication regions are configured by a communicationqueue for holding communication data to communicate with the informationon the reason for communication from the communicating processor, and anexclusion control region for locking the communication region forsecuring the communication.

In another preferred construction, an agent unit is provided on thefirst processor side, associated with the units of work on the secondprocessor side by UOW numbers to perform notification of various controlsignals between the units of work on the second processor side and theOS for single processor.

In another preferred construction, the parallel processing unit, the OSservice unit, the control processing relay unit, and the agent unit areincorporated in a modular fashion.

In another preferred construction, a function is provided on theparallel processing unit on the second processor side for creating unitsof work to be parallelly processed by the other processors on the secondprocessor side.

According to the second aspect of the invention, a parallel processingsystem by an OS for single processor capable of operating an OS forsingle processor and an application on a multiprocessor and achievingparallel processing by the multiprocessor with respect to theapplication, with the requirements of

logically dividing the multiprocessor into two groups, i.e., a firstprocessor side and a second processor side,

operating the OS for single processor and the application on a processoron the first processor side, and

controlling the units of work that are parallelizable within theapplication as new units of work on the processors on the secondprocessor side.

In the preferred construction, the units of work that are parallelizablewithin the application are precreated on the processors on the secondprocessor side.

In another preferred construction, the units of work that areparallelizable within the application are created and activated as newunits of work on the processors on the second processor side.

In another preferred construction, the OS for single processor providedwith a virtual storage mechanism is mounted on the processor on thefirst processor side and each processor on the second processor side.

In another preferred construction, the new units of work on theprocessors on the second processor side are controlled synchronously orasynchronously with the units of work on the processor on the firstprocessor side.

In another preferred construction, a parallel processing unit forperforming controls related to the units of work including the creationof the units of work, and an OS service unit for providing a service forthe OS for single processor to the units of work are incorporated oneach of the first processor side and the second processor side.

In another preferred construction, a control processing relay unit forexchanging control signals and data between the first processor side andthe second processor side is provided.

In another preferred construction, the control processing relay unitbeing provided with interruption control devices corresponding to eachprocessor, and communication regions corresponding to each processor,

the interruption control devices being configured by an interruptioninstruction unit for instructing the other processors to interrupt, aninterruption state holding unit for holding the information that therewas an interruption due to an interruption instruction, and aninterruption cancellation unit for clearing the interruption, and

the communication regions being configured by a communication reasonholding region for holding the information on the reason forcommunication from a communicating processor, a communication dataholding region for holding communication data for communication, and anexclusion control region for locking the communication region forsecuring the communication.

In another preferred construction, the control processing relay unitbeing provided with interruption control devices corresponding to eachprocessor, and communication regions corresponding to each processor,

the interruption control devices being configured by an interruptioninstruction unit for instructing the other processors to interrupt, aninterruption state holding unit for holding the information that therewas an interruption due to an interruption instruction, and aninterruption cancellation unit for clearing the interruption, and

wherein the communication regions are configured by a communicationqueue for holding communication data to communicate with the informationon the reason for communication from the communicating processor, and anexclusion control region for locking the communication region forsecuring the communication.

In another preferred construction, an agent unit is provided on thefirst processor side, associated with the units of work on the secondprocessor side by UOW numbers to perform notification of various controlsignals between the units of work on the second processor side and theOS for single processor.

In another preferred construction, the parallel processing unit, the OSservice unit, the control processing relay unit, and the agent unit areincorporated in a modular fashion.

In another preferred construction, a function is provided on theparallel processing unit on the second processor side for creating unitsof work to be parallelly processed by the other processors on the secondprocessor side.

According to the third aspect of the invention, a program for parallelprocessing by an OS for single processor capable of operating an OS forsingle processor and an application on a multiprocessor and achievingparallel processing by the multiprocessor with respect to theapplication, having the function of,

on a system in which the multiprocessor are logically divided into twogroups, i.e., a first processor side and a second processor side,

performing a function for controlling units of work that areparallelizable within the application operating on a processor on thefirst processor side as new units of work on processors on the secondprocessor side.

In the preferred construction, the program for parallel processing bythe OS for single processor has a function for precreating the units ofwork that are parallelizable within the application on the processor onthe second processor side.

In another preferred construction, the program for parallel processingby the OS for single processor has a function for creating andactivating the units of work that are parallelizable within theapplication as new units of work on the processor on the secondprocessor side.

In another preferred construction, executed on a system in which the OSfor single processor having a virtual storage mechanism is loaded on theprocessor on the first processor side and on each processor on thesecond processor side.

In another preferred construction, the program for parallel processingby the OS for single processor has a function for controlling the newunits of work on the processors on the second processor sidesynchronously or asynchronously with the units of work on the processoron the first processor side.

In another preferred construction, the program for parallel processingby the OS for single processor comprises a parallel processing functionfor performing controls related to the units of work including thecreation of the units of work, and an OS service function for providinga service for the OS for single processor to the units of work on eachof the first processor side and the second processor side.

In another preferred construction, the program for parallel processingby the OS for single processor has a control processing relay functionfor exchanging control signals and data between the first processor sideand the second processor side.

In another preferred construction, the program for parallel processingby the OS for single processor has an agent function on the firstprocessor side associated with the units of work on the second processorside by UOW numbers to perform notification of various control signalsbetween the units of work on the second processor side and the OS forsingle processor.

In another preferred construction, the parallel processing function onthe second processor side creates units of work to be parallellyprocessed by the other processors on the second processor side.

According to another aspect of the invention, a program for parallelprocessing by an OS for single processor capable of operating an OS forsingle processor and an application on a multiprocessor and achievingparallel processing by the multiprocessor with respect to theapplication, having the function of,

on a system in which the multiprocessor are logically divided into twogroups, i.e., a first processor side and a second processor side,

performing functions for operating the OS for single processor and theapplication on a processor on the first processor side, and

functions for controlling the units of work that are parallelizablewithin the application as new units of work on the processor on thesecond processor side.

In the preferred construction, the program for parallel processing bythe OS for single processor has a function for precreating the units ofwork that are parallelizable within the application on the processor onthe second processor side.

In another preferred construction, the program for parallel processingby the OS for single processor has a function for creating andactivating the units of work that are parallelizable within theapplication as new units of work on the processor on the secondprocessor side.

In another preferred construction, executed on a system in which the OSfor single processor having a virtual storage mechanism is loaded on theprocessor on the first processor side and on each processor on thesecond processor side.

In another preferred construction, the program for parallel processingby the OS for single processor has a function for controlling the newunits of work on the processors on the second processor sidesynchronously or asynchronously with the units of work on the processoron the first processor side.

In another preferred construction, the program for parallel processingby the OS for single processor has a parallel processing function forperforming control related to the units of work including the creationof the units of work, and an OS service function for providing a servicefor the OS for single processor for the units of work on the firstprocessor side and the second processor side respectively.

In another preferred construction, the program for parallel processingby the OS for single processor has a control processing relay functionfor exchanging control signals and data between the first processor sideand the second processor side.

In another preferred construction, the program for parallel processingby the OS for single processor has an agent function on the firstprocessor side associated with the units of work on the second processorside by UOW numbers to perform notification of various control signalsbetween the units of work on the second processor side and the OS forsingle processor.

In another preferred construction, the parallel processing function onthe second processor side creates units of work to be parallellyprocessed by the other processors on the second processor side.

Other objects, features and advantages of the present invention willbecome clear from the detailed description given herebelow.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be understood more fully from the detaileddescription given herebelow and from the accompanying drawings of thepreferred embodiment of the invention, which, however, should not betaken to be limitative to the invention, but are for explanation andunderstanding only.

In the drawings:

FIG. 1 is a block diagram showing the configuration of a parallelprocessing system according to a first embodiment of the presentinvention;

FIG. 2 is a drawing illustrating the operation of parallel processingactivation by a parallel processing unit of the parallel processingsystem according to the first embodiment of the present invention;

FIG. 3 is a drawing showing the configuration of a message forperforming requests in the activation of parallel processing by theparallel processing unit of the parallel processing system;

FIG. 4 is a drawing illustrating the operation of an OS service unit inregard to a file access request from a task on a second processor sidein the parallel processing system according to the first embodiment;

FIG. 5 is a drawing illustrating the operation in regard to a fileaccess request from a sequential task on a first processor side;

FIG. 6 is a block diagram showing the inner configuration of a controlprocessing relay unit in the parallel processing system according to thefirst embodiment;

FIG. 7 is a drawing illustrating the processing operation of the controlprocessing relay unit in the parallel processing system according to thefirst embodiment;

FIG. 8 is a drawing illustrating signal notification processingoperation by an agent unit in the parallel processing system accordingto the first embodiment;

FIG. 9 is a block diagram showing a configuration for achievinginter-task cooperative operation on the second processor side in theparallel processing system according to the first embodiment;

FIG. 10 is a drawing illustrating the inter-task cooperative operationon the second processor side in the parallel processing system accordingto the first embodiment;

FIG. 11 is a drawing illustrating an example of a case in which anapplication is operated on a mobile terminal with a multiprocessor as anexample of application of the parallel processing system;

FIG. 12 is a block diagram showing the configuration of a parallelprocessing system according to a second embodiment of the presentinvention;

FIG. 13 is a drawing illustrating the synchronous operation of parallelprocessing activation of processes in the parallel processing systemaccording to the second embodiment;

FIG. 14 is a drawing illustrating the asynchronous operation of parallelprocessing activation of processes in the parallel processing systemaccording to the second embodiment;

FIG. 15 is a block diagram showing the inner configuration of a controlprocessing relay unit in the parallel processing system according to thesecond embodiment; and

FIG. 16 is a drawing illustrating the processing operation of thecontrol processing relay unit in the parallel processing systemaccording to the second embodiment.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The preferred embodiment of the present invention will be discussedhereinafter in detail with reference to the accompanying drawings. Inthe following description, numerous specific details are set forth inorder to provide a thorough understanding of the present invention. Itwill be obvious, however, to those skilled in the art that the presentinvention may be practiced without these specific details. In otherinstance, well-known structures are not shown in detail in order tounnecessary obscure the present invention.

In a parallel processing system of the present invention, parallelprocessing is executed on a multiprocessor without adding anymodification to a conventional OS for single processor, by adding amechanism that requests processing to a plurality of processors, and amechanism for protecting critical sections in the provision of an OSservice for a plurality of processors.

Below, a preferred embodiment of the present invention will be describedin detail with reference to drawings.

FIG. 1 is a block diagram showing the configuration of a parallelprocessing system according to the preferred embodiment of the presentinvention.

As shown in FIG. 1, the parallel processing system according to thepresent embodiment is configured by logically dividing a multiprocessorconsisting of a plurality of processors (CPUs) P0-Pn (n is an integer ofmore than 1) connected through a system bus 91 into two groups, i.e., afirst processor side 10 and a second processor side 20, implementing anOS 30 for single processor that operates on the processor P0 on thefirst processor side 10, and implementing parallel processing units 40P0-40 Pn for performing parallel processing and OS service units 50P0-50 Pn for processing OS services on each of the processor P0 on thefirst processor side 10 and the processors P1-Pn on the second processorside 20. A main storage device 92 as a shared memory and an externalstorage device 93 such as a disk device that are shared among eachprocessor P0-Pn are also connected to the system bus 91.

In addition, the above-mentioned multiprocessor includes configurationsthat are provided not only with a plurality of processors of the sametype, but also a plurality of processing devices of different types,such as DSPs and security engines.

Also, a control processing relay unit 60 for exchanging control signalsand data between the first processor side 10 and the second processorside 20 is provided uniquely, and an agent unit 70 through which the OS30 for single processor communicates with tasks performed on the secondprocessor side 20 is provided on the first processor side 10.

It is not absolutely necessary that the first processor side 10 has asingle processor, and it may consist of a plurality of processors. Forexample, a configuration is possible, in which the first processor side10 has two processors, each of which being implemented with a differentOS for single processor.

In addition, an existing OS is used as the OS 30 for single processoractivated on the processor on the first processor side 10. For example,a real-time OS or a UNIX® OS is used as-is.

In the present specification, tasks means UOWs to perform parallelprocessing of processes and threads on the UNIX® OS, or tasks on thereal-time OS.

In the parallel processing system according to the present embodiment,an application operates on the OS for single processor on the firstprocessor side 10, among the UOWs of the application, those tasks whichcannot be parallelized (sequential tasks) are processed by the processorP0 on the first processing side 10, and those tasks which can beparallelized within the application are created as new tasks on thesecond processor side 20 and parallelly processed.

The parallel processing unit 40 P0 and the parallel processing units 40P1-40 Pn have functions for performing creation, activation, stop,termination, and deletion of tasks, and other controls related to tasks.Here, processing such as creation, activation, stop, termination, ordeletion of a task is performed through the control processing relayunit 60, from the parallel processing unit 40 P0 on the first processorside 10 in regard to the parallel processing units 40 P1-40 Pn of eachprocessor P1-Pn on the second processor side 20. In addition, a signalnotification is processed bidirectionally from both the parallelprocessing unit 40 P0 and the parallel processing units 40 P1-40 Pn.

The OS service unit 50 P0 and the OS service units 50 P1-50 Pn havefunctions as interfaces for performing various types of access to andcontrol over external devices, and as interfaces for performing varioustypes of access to and control over resources shared among the tasks.

The control processing relay unit 60 is a means for exchanging controlsignals and data between the first processor side 10 and the secondprocessor side 20, and is used for controlling a plurality of tasks thatare parallelly processed by a plurality of processors.

The agent unit 70 is associated with tasks (in whole or in part)performed on the second processor side 20, and implemented for signalnotifications (notification of various control signals for controllingtasks) between the tasks on the second processor side 20 and the OS 30for single processor.

Below, the operation of the parallel processing system according to thepresent embodiment configured as described above will be described indetail with reference to drawings.

Here, the application operates on the OS for single processor on thefirst processor side 10, and among the UOWs of the application, thoseUOWs that are processed by the processor P0 on the first processor side10 are defined as sequential tasks ST, and those UOWs which are tasksthat can be parallelized within the application and are parallellyprocessed by the second processor side 20 as tasks PT-1-PT-n are definedas parallelized tasks PT.

First, the operation of parallel processing activation by the parallelprocessing units 40 P0, 40 P1-40 Pn will be described with reference toFIGS. 2 and 3.

1) When the parallelized task PT on the first processor side 10 is to beactivated as any of the tasks PT-1-PT-n on the second processor side 20,a request for creating any of the tasks PT-1-PT-n as the UOW to beactivated on the second processor side 20 is made to the parallelprocessing unit 40P.

For example, a request (command) from the parallel processing unit 40 P0and the parallel processing units 40 P1-40 Pn includes the following:create (creation of tasks), delete (deletion of tasks), activate(activation of tasks), terminate (termination of tasks), signal (signalrequest), and so on. Of these, create (creation of tasks), delete(deletion of tasks), activate (activation of tasks), and terminate(termination of tasks) are the requests sent from the first processorside 10 to the second processor side 20, and signal (signal request) issent bidirectionally between the first processor side 10 and the secondprocessor side 20.

This request is performed by a message as shown in FIG. 3. In otherwords, a task creation request is performed by sending a message to theparallel processing unit 40 P0 consisting of a request content 201 thatindicates the content of the request (creation of task in this case), aprocessor number 202 that specifies the processor P1-Pn which is toprocess the task on the second processor side 20, a task number thatindicates the new tasks PT-1-PT-n to be created, and an original tasknumber that indicates the parallelized task PT requesting the creationof the task. In addition, requests other than task creation are alsosent according to the message shown in FIG. 3.

2) In response to the request, the parallel processing unit 40 P0activates the agent unit 70 corresponding to the tasks PT-1-PT-n to becreated. The agent unit 70 is activated so as to prevent the taskmanagement content from being shared between the first processor side 10and the second processor side 20, and to complete exclusive processingon the first processor side 10. At this time, the task numbers of thetasks PT-1-PT-n are held in the agent unit 70.

3) In addition, the parallel processing unit 40 P0 sets the datarequired to create tasks such as the above task numbers and requestcontent (task creation on the processors P1-Pn on the second processorside 20), and the information on the reason for communication thatspecifies “parallel processing”, in the control processing relay unit60.

In this way, processing for setting the content of communication to amain storage device 92 (shared memory) described below, and interruptingprocessors is performed in regard to the control processing relay unit60.

The information on the reason for communication is herein for indicatinga recipient (acceptor) of data passed to the control processing relayunit 60, and in the above case, the data set in the control processingrelay unit 60 is obtained by the parallel processing units 40 P1-40 Pnof the specified processors P1-Pn.

4) The parallel processing units 40 P1-40 Pn on the specified processorsP1-Pn on the second processor side 20 obtain the information on thereason for communication, which has “parallel processing” as the requestcontent (data required for task control), from the control processingrelay unit 60.

5) The parallel processing units 40 P1-40 Pn then create and activatethe tasks PT-1-PT-n on the processors P1-Pn based on the request contentobtained.

In this manner, it is possible to parallelly process the UOWs of theparallelized task PT, which are the UOWs of the application operating onthe OS for single processor on the first processor side 10, as the tasksPT-1-PT-n on the second processor side 20.

In addition, although a case was described in the above operation, inwhich the parallel processing units 40 P1-40 Pn create and activate thetasks PT-1-PT-n on the processors P1-Pn based on the request contentobtained, the parallelized task PT on the first processor side 10 may beprecreated as any of the tasks PT-1-PT-n on the second processor side20, and the parallel processing units 40 P1-40 Pn may activate the tasksPT-1-PT-n on the processors P1-Pn based on the request content obtained.

Next, the OS service processing operation by the OS service units 50 P0,50 P1-50 Pn will be described.

The OS service units 50 P0 and 50 P1-50 Pn have functions for providingservices related to various types of access to and control over externaldevices, and various types of access to and control over resourcesshared with other tasks, which are services by the OS 30 for singleprocessor, based on the requests from the tasks PT-1-PT-n created on theprocessors P1-Pn on the second processor side 20. The service by the OS30 for single processor mainly handles events that are equivalent tosystem calls or APIs provided by a conventional OS.

The operation of the OS service units 50 P0 and 50 P1-50 Pn in responseto a file access (e.g. various types of processing in regard to files onthe external storage device 93) request from the tasks PT-1-PT-n on theprocessors P1-Pn on the second processor side 20 will be described withreference to FIG. 4.

Here, the file access includes processing such as open (opening offiles), close (closing of files), read (reading of files), write(writing of files), seek (moving of the write position in a file),remove (removal of files), rename (renaming of files).

1) When the need for file access processing arises in the tasksPT-1-PT-n on the second processor side 20, the tasks PT-1-PT-n request aservice for file access to the OS service units 50 P1-50 Pn on thesecond processor side 20. In the service request for file access, forexample, a write function defined as a processing for writing into afile of the OS service units 50 P1-50 Pn, or a read function defined asa read processing of the files, etc., may be called.

Here, the OS service units 50 P1-50 Pn set data required for processingon the first processor side 10 (file access processing by the OS 30 forsingle processor). Here, the required data includes information such asthe request content (e.g. write request), a descriptor of the file to beaccessed (file descriptor), a pointer to a string, the length of thestring, and a task number.

2) The OS service units 50 P1-50 Pn issue file access requests to thefirst processor side 10 by setting the required data including therequest content in regard to the control processing relay unit 60 withthe information on the reason for communication set to “OS service”.

Thereafter, the tasks PT-1-PT-n which performed the file access servicerequest enter a waiting state, and processing switches to other tasks bythe parallel processing units 40 P1-40 Pn in the correspondingprocessors P1-Pn (switching of tasks).

3) The OS service unit 50 P0 on the first processor side 10 obtains theabove file access request having the “OS service” of the information onthe reason for communication from the control processing relay unit 60.

4) The OS service unit 50 P0 on the first processor side 10 requests forfile access to the OS 30 for single processor according to the requestcontent obtained.

5) The OS 30 for single processor thus performs file access (write,read, and so on) to the external storage device 93 based on the request.The file access processing is performed by using as-is the file accessservice that the OS 30 for single processor was provided withoriginally.

6) When the requested file access processing is completed, the OS 30 forsingle processor sends a return value in regard to the file accessrequest back to the OS service unit 50 P0 on the first processor side10, and returns the processing.

7) In addition, the OS service unit 50 P0 notifies the processors P1-Pnon the second processor side 20 of the completion of the file access, bysetting the communication content, which are data including the returnvalue and the task numbers of the tasks PT-1-PT-n that performed thefile access request, on the control processing relay unit 60 with “OSservice” defined as the information on the reason for communication.

8) The OS service units 50 P1-50 Pn of the corresponding processorsP1-Pn receive the return value set as described above and a completionnotification from the control processing relay unit 60.

9) Then, the OS services 50 P1-50 Pn on the second processor side 20request the activation of the tasks PT-1-PT-n which performed the fileaccess request in regard to the parallel processing units 40 P1-40 Pn.

Therefore, the processing switches to the tasks PT-1-PT-n which were inthe waiting state.

10) The tasks PT-1-PT-n activated by the parallel processing units 40P1-40 Pn receive the return value of the file access from the OS serviceunits 50 P1-50 Pn and proceed with the processing.

Thus, the tasks PT-1-PT-n on the second processor side 20 can performfile access using the services of the OS 30 for single processor as-is,without having to provide processing units for file access on the secondprocessor side 20 individually. In addition, since the exclusionprocessing for file access is completed on the first processor side 10,the parallel processing can be achieved without generating overheads dueto exclusion processing such as in case the application is operated onthe OS for multiprocessor.

In addition, when the tasks PT-1-PT-n on the processors P1-Pn on thesecond processor side 20 perform file access to read-only data on, e.g.,the external storage device 93, the external storage device 93 may beaccessed directly from the respective processors P1-Pn withoutprocessing by the OS service units 50 P1-50 Pn as described above.

Here, the file access request from the sequential task ST on theprocessor P0 on the first processor side 10 is performed directly by theOS 30 for single processor, not by the OS service unit. Below, this willbe described with reference to FIG. 5.

1) The sequential task ST on the processor P0 requests the file accessto the OS 30 for single processor.

2) The OS 30 for single processor then performs file access (write,read, and so on) to the external storage device 93 based on the request.The file access processing is performed by using as-is the file accessservice that the OS 30 for single processor was provided withoriginally.

3) When the file access processing is completed, the OS 30 for singleprocessor returns a return value regarding the file access request tothe sequential task ST, and returns the processing.

Since exclusion control is unnecessary in regard to OS service requestsfrom the sequential task ST, extra overheads do not occur.

The processing operation by the control processing relay unit 60 will bedescribed with reference to FIGS. 6 and 7.

First, the configuration of the control processing relay unit 60 isshown in FIG. 6. As illustrated, the control processing relay unit 60 isconfigured by the provision of interruption control devices 61 P0-61 Pncorresponding to the respective processors P0-Pn, and communicationregions 62 P0-62 Pn corresponding to the respective processors P0-Pn.Here, the communication regions 62 P0-62 Pn are stored in the mainstorage device 92.

In addition, interruption devices 61 P0-61 Pn are configured by aninterruption instruction unit 61 a that instructs the other processorsto interrupt, an interruption state holding unit 61 b that holds theinformation that there was an interruption due to an interruptioninstruction, and an interruption cancellation unit 61 c that clears theinterruption.

In addition, the communication regions 62 P0-62 Pn are configured by acommunication reason holding region 62 a that holds the information onthe reason for communication from a communicating processor, acommunication data holding region 62 b that holds communication data forcommunication, and an exclusion control region 62 c that locks thecommunication region for securing the communication.

At this point, in the communication data holding region 62 b a pointerto the main storage device 92 is stored, in which the communication data(a required data that includes the request content) to be communicatedis stored.

As an example, the operation of the communication processing from theparallel processing unit 40 P0 on the first processor side 10 to theprocessor P1 on the second processor side 20 will be described withreference to FIG. 7.

1) The parallel processing unit 40 P0 locks the exclusion control region62 c of the communication region 62 P1 for the processor P1.Specifically, setting a lock variable stored in the exclusion controlregion 62 c into the locked state prevents the communication region 62P1 for the processor P1 from being used by other processors.

If a lock was already set by another processor, there is a wait untilthe lock is released.

2) When the locking of the communication region 62 P1 is obtained, theparallel processing unit 40 P0 stores the information on the reason forcommunication and the communication data (a required data that includesthe request content) respectively in the communication reason holdingregion 62 a and the communication data holding region 62 b of thecommunication region 62 P1.

As information on the reason for communication to be stored, if thecommunication processing is for task creation as mentioned above,information indicating “parallel processing” (e.g. predetermined datasuch as a numeric value corresponding to parallel processing) is stored.

3) The parallel processing unit 40 P0 instructs the interruptioninstruction unit 61 a of its interruption control device 61 P0 tointerrupt the processor P1.

4) The interruption instruction unit 61 a of the interruption controldevice 61 P0 sets the information indicating the interruption in theinterruption state holding unit 61 b of the interruption control device61 P1 corresponding to the processor P1. Thus, the processor P1 becomesinterrupted.

5) The parallel processing unit 40 P1 of the processor P1 determinesthat interruption was set based on the status of the interruption stateholding unit 61 b of the interruption control device 61 P1 of thecontrol processing relay unit 60.

6) The parallel processing unit 40 P1 of the processor P1 releasesitself from its interrupted state by clearing the interruptioninformation of its interruption state holding unit 61 b of the controlprocessing relay unit 60.

7) The parallel processing unit 40 P1 of the processor P1 obtains theinformation on the reason for communication and the communication data(a required data that includes the request content) respectively fromthe communication reason holding region 62 a and the communication dataholding region 62 b of its communication region 62 P1 of the controlprocessing relay unit 60.

8) The parallel processing unit 40 P1 of the processor P1 unlocks theexclusion control region 62 c of its communication region 62 P1 after ithas become capable of receiving the next communication. Specifically, bysetting the lock variable stored in the exclusion control region 62 c tothe unlock state, the communication region 62 P1 for the processor P1 isreleased so that it may be used by the other processors.

Thus, using the control processing relay unit 60, exchange of controlsignals and data between the first processor side 10 and the secondprocessor side 20 is achieved.

The operation of signal notification processing by the agent unit 70will be described with reference to FIG. 8.

The agent unit 70 has functions whereby the OS 30 for single processorcommunicates via a signal (control signal) with the tasks PT-1-PT-ngenerated on the second processor side 20. The task numbers of the tasksPT-1-PT-n, which are to be handled, are held in the agent unit 70.

In addition, the agent unit 70 may be associated with a plurality oftasks PT-1-PT-n in a one-to-one relationship, or a plurality of tasksPT-1-PT-n may be associated with the agent unit 70 in a one-to-manyrelationship.

1) The sequential task ST on the first processor side 10 requests asignal notification service to the OS 30 for single processor. Thesignal communicated by the signal notification is a control signal forcontrolling the tasks PT-1-PT-n activated on each processor P1-Pn on thesecond processor side 20 via a service function which the OS 30 forsingle processor possesses originally.

2) The OS 30 for single processor notifies the agent unit 70 of thesignal.

3) Through the control processing relay unit 60, the agent unit 70notifies the notified signal to the processors P1-Pn which are to handleit and in which the task PT-1 exists, on the second processor side 20.At this point, “parallel processing” is set as the information on thereason for communication.

4) Since the information on the reason for communication to the controlprocessing relay unit 60 is “parallel processing”, the parallelprocessing units 40 P1-40 Pn of the handling processors on the secondprocessor side 20 obtain a signal notification request from the controlprocessing relay unit 60.

5) The parallel processing units 40 P1-40 Pn that obtained the signalnotification request notify the handling tasks PT-1-PT-n of the signal(control signal).

Thus, since the agent unit 70 is associated with the tasks PT-1-PT-n onthe processors P0-Pn on the second processor side 20 by the tasknumbers, on the first processor side 10, the signal notification serviceby the OS 30 for single processor can be performed with respect to thetasks PT-1-PT-n.

Finally, inter-task cooperative operation on the second processor side20 will be described with reference to FIGS. 9 and 10.

FIG. 9 shows the configuration of the parallel processing units 40 P1-40Pn for obtaining cooperation among the tasks. As illustrated, theparallel processing units 40 P1-40 Pn are provided with mutual exclusionunits 41 P1-41 Pn.

The main storage device 92 also includes an exclusion control region 43and a task management content holding region 44 to obtain taskcooperation.

1) The task PT-1 on the processor P1 requests the desired parallelprocessing to its parallel processing unit 40 P1.

2) The parallel processing unit 40 P1 of the processor P1 requests alock acquisition to the mutual exclusion unit 41 P1 to secure theresources that are to be used for parallel processing.

3) The mutual exclusion unit 41 P1 obtains the lock using the exclusioncontrol region 43 of the main storage device 92.

4) The mutual exclusion unit 41 P1 notifies the parallel processing unit40 P1 that the lock could be obtained.

5) The parallel processing unit 40 P1 holds, in the task managementcontent holding region 44, the management content (request content, tasknumber, and other required data) of the task PT-1 that requestedparallel processing on the processor P1.

6) The parallel processing unit 40 P1 interrupts the other processorsP2-Pn that are executing low-priority tasks. Here, it is supposed thatthe processor Pn is interrupted.

7) The parallel processing unit 40 P1 requests to the mutual exclusionunit 41 P1, the release of the lock secured as described above.

8) The mutual exclusion unit 41 P1 unlocks the exclusion control region43 of the main storage device 92.

9) The mutual exclusion unit 41 P1 notifies the parallel processing unit40 P1 of the completion of the unlocking.

10) The parallel processing unit 40 P1 returns the processing to thetask PT-1.

11) The parallel processing unit 40 Pn of the processor Pn requests alock acquisition to the mutual exclusion unit 41 Pn to secure theresources that are to be used for parallel processing.

12) The mutual exclusion unit 41 Pn obtains the lock using the exclusioncontrol region 43 of the main storage device 92.

13) The mutual exclusion unit 41 Pn notifies the parallel processingunit 40 Pn that the lock acquisition is completed.

14) The parallel processing unit 40 Pn obtains the task managementcontent stored in the task management content holding region 44.

15) The parallel processing unit 40 Pn creates and activates a new taskbased on the task management content.

16) The parallel processing unit 40 Pn requests to the mutual exclusionunit 41 Pn, the release of the lock secured as described above.

17) The mutual exclusion unit 41 Pn unlocks the exclusion control region43 of the main storage device 92.

18) The mutual exclusion unit 41 Pn notifies the parallel processingunit 40 Pn of the completion of the unlocking.

Such a task cooperation operation allows the tasks PT-1-PT-n activatedon the processors P1-Pn to have their own UOWs parallelly processed bythe other processors.

In applications in the parallel processing system configured as above,for example, an application that operates on a mobile terminal of amultiprocessor will be described.

Here, a case will be described with reference to FIG. 11, in which it isassumed that the application has the functions of playing a picture(animation) and sound simultaneously on a mobile terminal, the soundoutput processing being defined as a sequential task A, and the pictureoutput processing being defined as a parallelized task B, and isoperated on the processor P0 on the first processor side 10.

The parallelized task B is created and activated as a task C on any ofthe processors P1-Pn on the second processor side 20 by the aboveparallel processing unit.

The created task C outputs the picture on a screen via file accessprocessing of the OS service unit.

Concerning the sound output by the sequential task A, the sound isoutputted by the service of the single task OS 30.

In case the sound and the picture are to be synchronized periodically,synchronization is achieved by performing signal notification betweenthe sequential task A and the task C through the operation of signalnotification by the agent unit 70.

In addition, when the picture is edited in the task C, an editprocessing is created and activated as a task D on another processor bytask cooperative processing.

When the picture output processing by the task C is completed, the taskC notifies the OS for single processor of the termination via the fileaccess operation.

In the present embodiment, by implementing the parallel processing units40 P0-40 Pn, the OS service units 50 P0-50 Pn, the control processingrelay unit 60, and the agent unit 70 as modules, the OS 30 and theapplication for single processor can be operated without overheads on amultiprocessor system configuration without modifying the applicationsoperated on the OS 30 for single processor and the processor P0, and atthe same time, benefits arising from the parallel processing by themultiprocessor can be obtained.

Next, a parallel processing system according to a second embodiment ofthe present invention will be described with reference to FIG. 12 orgreater. FIG. 12 is a block diagram showing the configuration of theparallel processing system according to the second embodiment, in whichcomponents that are common to FIG. 1 are referenced by the samenumerals. In the second embodiment shown in FIG. 12, a case is shown, inwhich the parallel processing units 40 P0-40 Pn in the first embodimentconsist of parallel processing communication units 400 P0-400 Pn andcontrol agent units 500 P0-500 Pn respectively.

As shown in FIG. 12, the parallel processing system according to thepresent embodiment is similar to the first embodiment on the point thata multiprocessor consisting of a plurality of processors (CPU) P0-Pn (nis an integer of more than 1) connected through a system bus 91 islogically divided into two groups, i.e., a first processor side 100 anda second processor side 200.

In the second embodiment, OSes 300 P0-300 Pn for single processor areimplemented which operate on the processor P0 on the first processorside 100 and each processor of the processors (CPU) P0-Pn on the secondprocessor side 200.

In addition, parallel processing communication units 400 P0-400 Pn forparallel processing and control agent units 500 P0-500 Pn areimplemented on the processor P0 on the first processor side 100 and theprocessors P1-Pn on the second processor side 200 respectively. A mainstorage device 92 as a shared memory and an external storage device 93such as a disk device that are shared among each processor P0-Pn, arealso connected to the system bus 91.

Also, a control processing relay unit 600 is uniquely provided forexchanging control signals and data between the first processor side 100and the second processor side 200.

In addition, regarding the agent unit 70 shown in the first embodimentthrough which the OS 300 P0 for single processor on the first processorside 100 communicates with processes performed by the second processorside 200, since it performs functions that are absolutely identical tothe first embodiment, its description is omitted from the presentembodiment for the sake of convenience.

In addition, it was described in the first embodiment that the switchingof tasks was performed in response to the file access request from thetasks on the processors PT-1-PT-n on the second processor side 20. Fileaccess from the second processor side 200 is also possible in thepresent embodiment, and the switch of processes PP-1-PPn on the secondprocessor side 200 is performed by the OSes 300 P1-300 Pn for singleprocessor on the second processor side 200.

Regarding the OSes 300 P0-300 Pn for single processor implemented on theeach processor P0-Pn, there is a difference with the first embodiment onthe point that not only OSes that do not have a virtual storagemechanism which achieves a memory protection function such as real-timeOSes, but OSes that have a virtual storage mechanism such as Linux,Windows®, and so on, which are existing OSes can also be used, such thata memory protection mechanism can be achieved on all or part of eachprocessor P0-Pn.

In addition, the OSes 300 P0-300 Pn for single processor need not be thesame type of OS, but may be different types of OS from each other.

In the present embodiment, the task, which is a UOW for performingparallel processing, being memory protected between each processor, isreferred to as a process, to distinguish from the task in the firstembodiment.

In the parallel processing system according to the present embodiment,among the UOWs of an application operating on the OS 300 P0 for singleprocessor on the first processor side 100, those processes which cannotbe parallelized (sequential processes SP) are processed by the processorP0 on the first processing side 100, and those tasks which can beparallelized within the application are created as new processesPP-1-PP-n on the second processor side 200 and parallelly processed.

The parallel processing communication unit 400 P0 and the parallelprocessing communication units 400 P1-400 Pn have functions for passingprocess creation, activation, stop, termination, deletion and othercontrol information related to processes, between the processes and theOSes 300 P0-300 Pn for single processor.

Here, control information and data related to creation, activation,stop, termination, deletion or the like of tasks are exchanged throughthe control processing relay unit 600 between the first processor side100 and the second processor side 200.

In addition, the control agent unit 500 P0 and the control agent units500 P1-500 Pn have functions to obtain processing requests from the OSes300 P0-300 Pn for single processor to the process, and activate theprocess.

The control processing relay unit 600 is a means for exchanging controlsignals and data between the first processor side 10 and the secondprocessor side 20, and is used for controlling a plurality of processesthat are parallelly processed by a plurality of processors.

Below, the operation of the parallel processing system according to thesecond embodiment configured as described above will be described indetail below with reference to drawings.

Here, the application operates on the OS 300 P0 for single processor onthe first processor side 100, and among the UOWs of the application,those UOWs that are processed by the processor P0 on the first processorside 100 are defined as sequential processes SP, and those UOWs whichare processes that can be parallelized within the application, and areparallelly processed by the second processor side 200 as tasks PP-1-PP-nare defined as parallelized processes PP.

In the second embodiment, after a process (task) is activated,synchronous activation of parallel processing in which a parallelizedprocess PP that is a process (task) on the calling side waits for thetermination of the activated processes PP-1-PP-n, and asynchronousactivation of parallel processing in which a parallelized process PPthat is a process (task) on the calling side need not wait for thetermination of the activated processes PP-1-PP-n, are possible.

First, the operation for the synchronous activation of parallelprocessing of process will be described with reference to FIG. 13.

Here, the parallelized process PP on the first processor side 100 isprecreated as a process PP-k which is a UOW that is activated on thesecond processor side 200 in a processor Pk (1≦k≦n) on the secondprocessor side 200.

1) The process PP-k on the processor Pk (1≦k≦n) on the second processorside 200 records in a parallel processing communication unit 400 Pk, theinformation on the processing associated with its process. Thus, theprocess PP-k is in the standby state.

2) The parallel processing communication unit 400 Pk performs requestfor accessing the required data on the main storage device 92 (sharedmemory) through the OS 300 Pk for single processor.

3) Thus, the information on processing associated with the process PP-kis stored in the main storage device 92 (shared memory).

4) The process PP on the processor P0 requests synchronous processing tothe parallel processing communication unit 400 P0. Thereafter, theprocess PP enters the standby state.

5) The parallel processing communication unit 400 P0 which received therequest performs a request to access data on the main storage device 92(shared memory) through the OS 300 P0 for single processor.

6) The main storage device 92 (shared memory) is accessed by the OS 300P0 for single processor.

7) The parallel processing communication unit 400 P0 obtains theinformation on processing associated with the process PP-k from the mainstorage device 92 (shared memory). Thus, a processor number and aprocess number for performing the process PP-k are obtained.

8) The parallel processing communication unit 400 P0 requests acommunication request based on the information obtained from the mainstorage device 92 (shared memory) through the OS 300 P0 for singleprocessor.

9) The OS 300 P0 for single processor sets the information required forcommunication in the control processing relay unit 600.

10) Thus, a processing request is sent from the control processing relayunit 600 to the OS 300 Pk for single processor of the processor Pk.

11) The control agent unit 500 Pk of the processor Pk obtains theprocessing request sent through the OS 300 Pk for single processor.

12) Then, the control agent unit 500 Pk activates the process PP-kaccording to the processing request obtained.

13) Thus, the process PP-k which was in the standby state performs theprocessing.

14) After the processing has finished, the process PP-k notifies theparallel processing communication unit 400 Pk of this information.

15) The parallel processing communication unit 400 Pk that received thenotification requests a communication request based on the informationthat was notified through the OS 300 Pk for single processor.

16) The OS 300 Pk for single processor sets the information required forcommunication in the control processing relay unit 600.

17) Thus, the processing request is sent from the control processingrelay unit 600 to the OS 300 P0 for single processor of the processorP0.

18) The control agent unit 500 P0 of the processor P0 obtains theprocessing request sent through the OS 300 P0 for single processor.

19) Then, the control agent unit 500 P0 activates the process PPaccording to the processing request obtained.

Thus, synchronous processing is achieved between the process PP on theprocessor P0 on the first processor side 100 and the processor PP-k onthe second processor side 200.

Next, the operation for the asynchronous activation of parallelprocessing of process will be described with reference to FIG. 14.

Here also, the parallelized process PP on the first processor side 100is precreated as a process PP-k which is a UOW that is activated on thesecond processor side 200 in a processor Pk (1≦k≦n) on the secondprocessor side 200.

1) The process PP-k which was performing the processing on the processorPk (1≦k≦n) on the second processor side 200 records in a parallelprocessing communication unit 400 Pk, the information on the processingassociated with its process. Thus, the process PP-k enters a standbystate.

2) The parallel processing communication unit 400 Pk performs requestfor accessing the required data on the main storage device 92 (sharedmemory) through the OS 300 Pk for single processor.

3) Thus, the information on processing associated with the process PP-kis stored in the main storage device 92 (shared memory).

4) The process PP on the processor P0 requests asynchronous processingto the parallel processing communication unit 400 P0. In this case, theprocess PP continues processing without entering the standby state.

5) The parallel processing communication unit 400 P0 which received therequest performs a request to access data on the main storage device 92(shared memory) through the OS 300 P0 for single processor.

6) The main storage device 92 (shared memory) is accessed by the OS 300P0 for single processor.

7) The parallel processing communication unit 400 P0 obtains theinformation on processing associated with the process PP-k from the mainstorage device 92 (shared memory). Thus, a processor number and aprocess number for performing the process PP-k are obtained.

8) The parallel processing communication unit 400 P0 requests acommunication request based on the information obtained from the mainstorage device 92 (shared memory) through the OS 300 P0 for singleprocessor.

9) The OS 300 P0 for single processor sets information required forcommunication in the control processing relay unit 600.

10) Thus, the processing request is sent from the control processingrelay unit 600 to the OS 300 Pk for single processor of the processorPk.

11) The control agent unit 500 Pk of the processor Pk obtains theprocessing request sent through the OS 300 Pk for single processor.

12) The control agent unit 500 Pk activates the process PP-k accordingto the processing request obtained.

13) Thus, the process PP-k which was in the standby status performs theprocessing.

Thus, asynchronous processing is achieved between the process PP on theprocessor P0 on the first processor side 100 and the processor PP-k onthe second processor side 200.

In addition, the processing operation by the control processing relayunit 600 in the parallel processing system according to the secondembodiment will be described with reference to FIGS. 15 and 16.

First, the configuration of the control processing relay unit 600 isshown in FIG. 15. As illustrated, the control processing relay unit 600is configured by the provision of interruption control devices 601P0-601 Pn corresponding to the respective processors P0-Pn, andcommunication regions 602 P0-602 Pn corresponding to the respectiveprocessors P0-Pn. Here, the communication regions 602 P0-602 Pn arestored in the main storage device 92.

The interruption control devices 601 P0-601 Pn have the sameconfiguration as the control processing relay unit 60 in the firstembodiment shown in FIG. 6, and consist of an interruption instructionunit 601 a, an interruption state holding device 61 b, and aninterruption cancellation unit 601 c.

Also, communication regions 602 P0-602 Pn basically have the sameconfiguration as in the first embodiment shown in FIG. 6, and consist ofa communication queue 602 a formed by combining the communication reasonholding region 62 a with the communication data holding region 62 bshown in FIG. 6, and an exclusion control region 602 c.

As an example, the operation of the communication processing from theparallel processing communication unit 400 P0 on the first processorside 100 to the processor Pn on the second processor side 20 will bedescribed with reference to FIG. 16.

1) The parallel processing communication unit 400 P0 locks the exclusioncontrol region 602 b of the communication region 602 Pn for processorP1. Specifically, setting a lock variable stored in the exclusioncontrol region 602 b into a lock state prevents the communication region602 Pn for the processor Pn from being used in the other processors.

2) The parallel processing communication unit 400 P0 stores theinformation on the reason for communication and the communication data(a required data that includes the request content) in the communicationqueue 602 a of the communication region 602 Pn.

As information on the reason for communication to be stored, if thecommunication processing is one for process creation/activation asmentioned above, information indicating “activation of processing” (e.g.predetermined data such as a numeric value corresponding to the parallelprocessing) is stored.

3) At the time point of 1), if the communication queue 602 a of thecommunication region 602 Pn is empty, the parallel processingcommunication unit 400 P0 instructs the interruption instruction unit601 a of its interruption control device 601 P0 to interrupt theprocessor Pn.

4) The parallel processing communication unit 400 P0 of the processor P0sets the exclusion control region 602 b of the communication region 602Pn for the processor Pn into the unlocked state. If the communicationqueue 602 a of the communication regions 602 Pn was not empty at thetime point of 1), the processing terminates at this point becauseinterruption is not required.

5) The interruption indication unit 601 a of the interruption controldevice 601 P0 sets information indicating the interruption in theinterruption state holding device 601 b of the interruption controldevice 601 Pn corresponding to the processor Pn. Thus, the processor Pnbecomes interrupted.

6) The OS 300 Pn for single processor of the processor Pn receives theinterruption based on the on the condition of the interruption stateholding unit 601 b of the interruption control device 601 Pn for theprocessor Pn.

7) The OS 300 Pn for single processor of the processor Pn releases itsinterrupted state by clearing the interruption information of itsinterruption state holding unit 601 b via the interruption cancellationunit 601 c of the interruption control device 601 Pn.

8) The OS 300 Pn for single processor of the processor Pn activates itscontrol agent unit 500 Pn.

9) The control agent unit 500 Pn of the processor Pn sets a lock in theexclusion control region 602 b of its communication region 602 Pn.

10) The control agent unit 500 Pn of the processor Pn deletes theinformation on the reason for communication and the communication datafrom the communication queue 602 a of its communication region 602 Pnrespectively.

11) The control agent unit 500 Pn of the processor Pn unlocks theexclusion control region 602 b of the communication region 602 Pn forthe processor Pn. Thus, the communication region 602 Pn for theprocessor Pn may be used by the other processors.

Thus, using the control processing relay unit 600, exchange of controlsignals and data between the first processor 100 and the secondprocessor 200 is achieved.

In addition, the parallel processing system according to the respectiveembodiments mentioned above can be achieved by a parallel processingprogram having the respective functions of the parallel processing unit,the OS service unit, the control processing relay unit, and the agentunit. The parallel processing program is stored on a magnetic disk, asemiconductor memory, and other storage media, and loaded from thestorage medium onto a computer processing device, and controls theoperation of the computer processing device to achieve the aboverespective functions.

The present invention was described above by giving preferredembodiments and examples; however, the present invention is not limitedto the above embodiments and examples, and may be implemented withvarious modifications within the scope of its technical idea.

According to the present invention as described above, by operating anOS and an existing application for single processor on a multiprocessorwithout modifying them, parallel processing by the multiprocessor withrespect to the application can be achieved.

Moreover, according to the present invention, by implementing parallelprocessing units, OS service units, a control processing relay unit, andan agent unit as modules, an OS and an existing application for singleprocessor can be operated without overheads on a multiprocessor systemconfiguration without modifying the applications operated on the OS forsingle processor, such that benefit arising from parallel processing bythe multiprocessor can be obtained.

Moreover, the tasks on the second processor side can perform file accessusing the services of the OS for single processor as-is without havingto provide a processing unit for file access on the second processorside individually. In addition, since the exclusion processing for fileaccess is completed on the first processor side, the parallel processingcan be achieved without generating overheads due to exclusion processingsuch as in case the application is operated on the OS formultiprocessor.

Furthermore, by loading an OS for single processor having a virtualstorage mechanism onto the processor on the first processor side andeach processor on the second processor side, the above parallelprocessing can be achieved while performing memory protection betweeneach process.

Furthermore, when either of the UOW (task/process) on the firstprocessor side and the UOW on the second processor side, or both requestprocessing to the parallel processing unit, the parallel processingunits or the OS for single processor on the second processor side placesthe requesting UOW into the standby state, so that synchronousprocessing can be achieved.

Furthermore, when either of the UOW (task/process) on the firstprocessor side and the UOW on the second processor side, or both requestprocessing to the parallel processing unit, the parallel processingunits or the OS for single processor on the second processor sideproceeds with the execution of the requesting UOW, so that asynchronousprocessing can be achieved.

Although the invention has been illustrated and described with respectto exemplary embodiment thereof, it should be understood by thoseskilled in the art that the foregoing and various other changes,omissions and additions may be made therein and thereto, withoutdeparting from the spirit and scope of the present invention. Therefore,the present invention should not be understood as limited to thespecific embodiment set out above but to include all possibleembodiments which can be embodies within a scope encompassed andequivalents thereof with respect to the feature set out in the appendedclaims.

1. A parallel processing system by an OS for single processor capable ofoperating an OS for single processor and an application on amultiprocessor and achieving parallel processing by said multiprocessorwith respect to said application, with the requirements of logicallydividing said multiprocessor into two groups, i.e., a first processorside and a second processor side, and controlling units of work that areparallelizable within said application operating on a processor on saidfirst processor side as new units of work on processors on said secondprocessor side.
 2. The parallel processing system by said OS for singleprocessor as set forth in claim 1, wherein the units of work that areparallelizable within said application are precreated on the processorson said second processor side.
 3. The parallel processing system by saidOS for single processor as set forth in claim 1, wherein the units ofwork that are parallelizable within said application are created andactivated as new units of work on the processors on said secondprocessor side.
 4. The parallel processing system by said OS for singleprocessor as set forth in claim 1, wherein said OS for single processorprovided with a virtual storage mechanism is mounted on the processor onsaid first processor side and each processor on said second processorside.
 5. The parallel processing system by said OS for single processoras set forth in claim 4, wherein the new units of work on the processorson said second processor side are controlled synchronously orasynchronously with the units of work on the processor on said firstprocessor side.
 6. The parallel processing system by said OS for singleprocessor as set forth in claim 1, wherein a parallel processing unitfor performing controls related to the units of work including saidcreation of the units of work, and an OS service unit for providing aservice for said OS for single processor to said units of work areincorporated on each of said first processor side and said secondprocessor side.
 7. The parallel processing system by said OS for singleprocessor as set forth in claim 1, wherein a control processing relayunit for exchanging control signals and data between said firstprocessor side and said second processor side is provided.
 8. Theparallel processing system by said OS for single processor as set forthin claim 7, wherein said control processing relay unit being providedwith interruption control devices corresponding to each processor, andcommunication regions corresponding to each processor, said interruptioncontrol devices being configured by an interruption instruction unit forinstructing the other processors to interrupt, an interruption stateholding unit for holding the information that there was an interruptiondue to an interruption instruction, and an interruption cancellationunit for clearing the interruption, and said communication regions beingconfigured by a communication reason holding region for holding theinformation on the reason for communication from a communicatingprocessor, a communication data holding region for holding communicationdata for communication, and an exclusion control region for locking thecommunication region for securing the communication.
 9. The parallelprocessing system by said OS for single processor as set forth in claim7, wherein said control processing relay unit being provided withinterruption control devices corresponding to each processor, andcommunication regions corresponding to each processor, said interruptioncontrol devices being configured by an interruption instruction unit forinstructing the other processors to interrupt, an interruption stateholding unit for holding the information that there was an interruptiondue to an interruption instruction, and an interruption cancellationunit for clearing the interruption, and wherein said communicationregions are configured by a communication queue for holdingcommunication data to communicate with the information on the reason forcommunication from the communicating processor, and an exclusion controlregion for locking the communication region for securing thecommunication.
 10. The parallel processing system by said OS for singleprocessor as set forth in claim 6, wherein an agent unit is provided onsaid first processor side, associated with the units of work on saidsecond processor side by UOW numbers to perform notification of variouscontrol signals between the units of work on said second processor sideand said OS for single processor.
 11. The parallel processing system bysaid OS for single processor as set forth in claim 6, wherein saidparallel processing unit, the OS service unit, the control processingrelay unit, and the agent unit are incorporated in a modular fashion.12. The parallel processing system by said OS for single processor asset forth in claim 6, wherein a function is provided on said parallelprocessing unit on said second processor side for creating units of workto be parallelly processed by the other processors on said secondprocessor side.
 13. A parallel processing system by an OS for singleprocessor capable of operating an OS for single processor and anapplication on a multiprocessor and achieving parallel processing bysaid multiprocessor with respect to said application, with therequirements of logically dividing said multiprocessor into two groups,i.e., a first processor side and a second processor side, operating saidOS for single processor and said application on a processor on saidfirst processor side, and controlling the units of work that areparallelizable within said application as new units of work on theprocessors on said second processor side.
 14. The parallel processingsystem by said OS for single processor as set forth in claim 13, whereinthe units of work that are parallelizable within said application areprecreated on the processors on said second processor side.
 15. Theparallel processing system by said OS for single processor as set forthin claim 13, wherein the units of work that are parallelizable withinsaid application are created and activated as new units of work on theprocessors on said second processor side.
 16. The parallel processingsystem by said OS for single processor as set forth in claim 13, whereinsaid OS for single processor provided with a virtual storage mechanismis mounted on the processor on said first processor side and eachprocessor on said second processor side.
 17. The parallel processingsystem by said OS for single processor as set forth in claim 16, whereinthe new units of work on the processors on said second processor sideare controlled synchronously or asynchronously with the units of work onthe processor on said first processor side.
 18. The parallel processingsystem by said OS for single processor as set forth in claim 13, whereina parallel processing unit for performing controls related to the unitsof work including said creation of the units of work, and an OS serviceunit for providing a service for said OS for single processor to saidunits of work are incorporated on each of said first processor side andsaid second processor side.
 19. The parallel processing system by saidOS for single processor as set forth in claim 13, wherein a controlprocessing relay unit for exchanging control signals and data betweensaid first processor side and said second processor side is provided.20. The parallel processing system by said OS for single processor asset forth in claim 19, wherein said control processing relay unit beingprovided with interruption control devices corresponding to eachprocessor, and communication regions corresponding to each processor,said interruption control devices being configured by an interruptioninstruction unit for instructing the other processors to interrupt, aninterruption state holding unit for holding the information that therewas an interruption due to an interruption instruction, and aninterruption cancellation unit for clearing the interruption, and saidcommunication regions being configured by a communication reason holdingregion for holding the information on the reason for communication froma communicating processor, a communication data holding region forholding communication data for communication, and an exclusion controlregion for locking the communication region for securing thecommunication.
 21. The parallel processing system by said OS for singleprocessor as set forth in claim 19, wherein said control processingrelay unit being provided with interruption control devicescorresponding to each processor, and communication regions correspondingto each processor, said interruption control devices being configured byan interruption instruction unit for instructing the other processors tointerrupt, an interruption state holding unit for holding theinformation that there was an interruption due to an interruptioninstruction, and an interruption cancellation unit for clearing theinterruption, and wherein said communication regions are configured by acommunication queue for holding communication data to communicate withthe information on the reason for communication from the communicatingprocessor, and an exclusion control region for locking the communicationregion for securing the communication.
 22. The parallel processingsystem by said OS for single processor as set forth in claim 18, whereinan agent unit is provided on said first processor side, associated withthe units of work on said second processor side by UOW numbers toperform notification of various control signals between the units ofwork on said second processor side and said OS for single processor. 23.The parallel processing system by said OS for single processor as setforth in claim 18, wherein said parallel processing unit, the OS serviceunit, the control processing relay unit, and the agent unit areincorporated in a modular fashion.
 24. The parallel processing system bysaid OS for single processor as set forth in claim 18, wherein afunction is provided on said parallel processing unit on said secondprocessor side for creating units of work to be parallelly processed bythe other processors on said second processor side.
 25. A program forparallel processing by an OS for single processor capable of operatingan OS for single processor and an application on a multiprocessor andachieving parallel processing by said multiprocessor with respect tosaid application, having the function of, on a system in which saidmultiprocessor are logically divided into two groups, i.e., a firstprocessor side and a second processor side, performing a function forcontrolling units of work that are parallelizable within saidapplication operating on a processor on said first processor side as newunits of work on processors on said second processor side.
 26. Theprogram for parallel processing by said OS for single processor as setforth in claim 25, further having a function for precreating the unitsof work that are parallelizable within said application on the processoron said second processor side.
 27. The program for parallel processingby said OS for single processor as set forth in claim 25, further havinga function for creating and activating the units of work that areparallelizable within said application as new units of work on theprocessor on said second processor side.
 28. The program for parallelprocessing by said OS for single processor as set forth in claim 25,executed on a system in which said OS for single processor having avirtual storage mechanism is loaded on the processor on the firstprocessor side and on each processor on said second processor side. 29.The program for parallel processing by said OS for single processor asset forth in claim 28, further having a function for controlling the newunits of work on the processors on said second processor sidesynchronously or asynchronously with the units of work on the processoron said first processor side.
 30. The program for parallel processing bysaid OS for single processor as set forth in claim 25, comprising aparallel processing function for performing controls related to theunits of work including said creation of the units of work, and an OSservice function for providing a service for said OS for singleprocessor to said units of work on each of said first processor side andsaid second processor side.
 31. The program for parallel processing bysaid OS for single processor as set forth in claim 30, further having acontrol processing relay function for exchanging control signals anddata between said first processor side and said second processor side.32. The program for parallel processing by said OS for single processoras set forth in claim 30, further having an agent function on said firstprocessor side associated with the units of work on said secondprocessor side by UOW numbers to perform notification of various controlsignals between the units of work on said second processor side and saidOS for single processor.
 33. The program for parallel processing by saidOS for single processor as set forth in claim 30, wherein said parallelprocessing function on said second processor side creates units of workto be parallelly processed by the other processors on said secondprocessor side.
 34. A program for parallel processing by an OS forsingle processor capable of operating an OS for single processor and anapplication on a multiprocessor and achieving parallel processing bysaid multiprocessor with respect to said application, having thefunction of, on a system in which said multiprocessor are logicallydivided into two groups, i.e., a first processor side and a secondprocessor side, performing functions for operating said OS for singleprocessor and said application on a processor on said first processorside, and functions for controlling the units of work that areparallelizable within said application as new units of work on theprocessor on said second processor side.
 35. The program for parallelprocessing by said OS for single processor as set forth in claim 34,further having a function for precreating the units of work that areparallelizable within said application on the processor on said secondprocessor side.
 36. The program for parallel processing by said OS forsingle processor as set forth in claim 34, further having a function forcreating and activating the units of work that are parallelizable withinsaid application as new units of work on the processor on said secondprocessor side.
 37. The program for parallel processing by said OS forsingle processor as set forth in claim 34, executed on a system in whichsaid OS for single processor having a virtual storage mechanism isloaded on the processor on the first processor side and on eachprocessor on said second processor side.
 38. The program for parallelprocessing by said OS for single processor as set forth in claim 37,further having a function for controlling the new units of work on theprocessors on said second processor side synchronously or asynchronouslywith the units of work on the processor on said first processor side.39. The program for parallel processing by said OS for single processoras set forth in claim 34, further having a parallel processing functionfor performing control related to the units of work including saidcreation of the units of work, and an OS service function for providinga service for said OS for single processor for said units of work on thesaid first processor side and the second processor side respectively.40. The program for parallel processing by said OS for single processoras set forth in claim 34, further having a control processing relayfunction for exchanging control signals and data between said firstprocessor side and said second processor side.
 41. The program forparallel processing by said OS for single processor as set forth inclaim 39, further having an agent function on said first processor sideassociated with the units of work on said second processor side by UOWnumbers to perform notification of various control signals between theunits of work on said second processor side and said OS for singleprocessor.
 42. The program for parallel processing by said OS for singleprocessor as set forth in claim 39, wherein said parallel processingfunction on said second processor side creates units of work to beparallelly processed by the other processors on said second processorside.